/*
 * Nivel.h
 *
 *  Created on: 10/11/2012
 *      Author: sismotkut
 */

#ifndef NIVEL_H_
#define NIVEL_H_

#include "Caja.h"
#include "Bonificable.h"
#include "Cerdito.h"
#include "LineaDeEntradaPajaros.h"
#include "Punto.h"
#include <vector>
#include <string>
class Nivel {
public:
	Nivel();
	void agregarPuntoSuperficie(double x, double y);
	void agregar(LineaDeEntradaPajaros& lineaDePajaros);
	void agregar(Caja& caja);
	void agregar(Bonificable& bonificable);
	void agregar(Cerdito& cerdito);
	void remover(LineaDeEntradaPajaros& lineaDePajaros);
	void remover(Caja& caja);
	void remover(Bonificable& bonificable);
	void remover(Cerdito& cerdito);
	void setFondo(std::string path);
	void setMaximoPuntajeAlcanzado(int puntaje);
	void setCantidadMaximaDeJugadores(int cantidadJugadores);
	std::string getFondo();
	std::vector<Punto*> getPuntosSuperficie();
	std::vector<LineaDeEntradaPajaros*> getLineasDePajaros();
	std::vector<Caja*> getCajas();
	std::vector<Bonificable*> getBonificables();
	std::vector<Cerdito*> getCerditos();
	void importarXML(std::string filePath);
	void exportarXML(std::string filePath);
	virtual ~Nivel();
private:
	int cantidadMaximaDeJugadores;
	int maximoPuntajeAlcanzado;
};


#endif /* NIVEL_H_ */
